package org.zjt.design.pattern;

import lombok.Builder;
import lombok.Data;
import static java.lang.System.*;

/**
 * @author <a href="juntao.zhang@qq.com">juntao.zhang</a>
 * @Description:  中介者模式
 * @Package org.zjt.design.pattern
 * @date 2018/5/8 15:58
 *
 * 使用场景：
    中介者模式适用于多个对象之间紧密耦合的情况，紧密耦合的标准是：在类图中出现了蜘蛛网状结构，即每个类都与其他的类有直接的联系。
 */
public class MediatorTest {

    public static void main(String[] args) {

        // 中介者包装各种实例。
        Mediator mediator = Mediator.builder().executorA(new ExecutorA()).executorB(new ExecutorB()).build();
        mediator.getExecutorA().exec();
    }

}

class ExecutorA{

    public void exec(){
        out.println("-------A-------");
    }
}

class ExecutorB{
    public void exec(){
        out.println("-------B-------");
    }
}


/**
 * 中介者
 */
@Data
@Builder
class Mediator{

    private ExecutorA executorA;

    private ExecutorB executorB;

}